70 lines
1.5 KiB
Go
70 lines
1.5 KiB
Go
package shippedBinarys
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"strconv"
|
|
|
|
"github.com/2dust/AndroidLibV2rayLite/CoreI"
|
|
)
|
|
|
|
type FirstRun struct {
|
|
Status *CoreI.Status
|
|
}
|
|
|
|
func (v *FirstRun) checkIfRcExist() error {
|
|
datadir := v.Status.GetDataDir()
|
|
if _, err := os.Stat(datadir + strconv.Itoa(CoreI.CheckVersion())); !os.IsNotExist(err) {
|
|
log.Println("file exists")
|
|
return nil
|
|
}
|
|
|
|
|
|
IndepDir, err := AssetDir("ArchIndep")
|
|
log.Println(IndepDir)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, fn := range IndepDir {
|
|
log.Println(datadir+"ArchIndep/"+fn)
|
|
|
|
err := RestoreAsset(datadir, "ArchIndep/"+fn)
|
|
log.Println(err)
|
|
|
|
//GrantPremission
|
|
os.Chmod(datadir+"ArchIndep/"+fn, 0700)
|
|
log.Println(os.Remove(datadir + fn))
|
|
log.Println(os.Symlink(datadir+"ArchIndep/"+fn, datadir + fn))
|
|
}
|
|
|
|
|
|
DepDir, err := AssetDir("ArchDep")
|
|
log.Println(DepDir)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, fn := range DepDir {
|
|
DepDir2, err := AssetDir("ArchDep/" + fn)
|
|
log.Println("ArchDep/" + fn)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, FND := range DepDir2 {
|
|
log.Println(datadir+"ArchDep/"+fn+"/"+FND)
|
|
|
|
RestoreAsset(datadir, "ArchDep/"+fn+"/"+FND)
|
|
os.Chmod(datadir+"ArchDep/"+fn+"/"+FND, 0700)
|
|
log.Println(os.Remove(datadir + FND))
|
|
log.Println(os.Symlink(datadir+"ArchDep/"+fn+"/"+FND, datadir+FND))
|
|
}
|
|
}
|
|
s, _ := os.Create(datadir + strconv.Itoa(CoreI.CheckVersion()))
|
|
s.Close()
|
|
|
|
return nil
|
|
}
|
|
|
|
func (v *FirstRun) CheckAndExport() error {
|
|
return v.checkIfRcExist()
|
|
}
|