Compare commits
3 Commits
e93db2d65f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
71f48885cd | ||
|
|
cb2576c138 | ||
|
|
f69b349835 |
68
env_loc.js
68
env_loc.js
@@ -3,6 +3,7 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const os = require('os')
|
||||
const readline = require('readline')
|
||||
|
||||
const params = process.argv.slice(2)
|
||||
|
||||
@@ -28,21 +29,66 @@ const defaultEnv = {
|
||||
openShare: fs.existsSync('../../npm') ? path.resolve('../../npm') : fs.existsSync(`${os.homedir()}/opx`) ? path.resolve(`${os.homedir()}/opx`) : '',
|
||||
}
|
||||
|
||||
const localEnv = Object.assign(
|
||||
{},
|
||||
params.reduce((acc, cur) => {
|
||||
const paramDefaults = params.reduce((acc, cur) => {
|
||||
// 把参数名数组转化为对象
|
||||
acc[cur] = ''
|
||||
return acc
|
||||
}, {}),
|
||||
defaultEnv, // 继承所有默认值
|
||||
fs.existsSync('./env_loc.gitomit.sfomit.json') ? require(path.resolve('./env_loc.gitomit.sfomit.json')) : {}
|
||||
)
|
||||
}, {})
|
||||
|
||||
fs.writeFileSync(path.resolve('./env_loc.gitomit.sfomit.json'), JSON.stringify(localEnv, null, 2), 'utf8')
|
||||
const existingEnv = fs.existsSync('./env_loc.gitomit.sfomit.json') ? require(path.resolve('./env_loc.gitomit.sfomit.json')) : {}
|
||||
|
||||
console.log('\n::*** Configuring local enviroment:')
|
||||
const baseEnv = Object.assign({}, paramDefaults, defaultEnv, existingEnv)
|
||||
|
||||
console.log(localEnv)
|
||||
const isEmptyValue = (value) => value === '' || value === undefined || value === null
|
||||
|
||||
module.exports = localEnv
|
||||
const askKeyValues = (keys) =>
|
||||
new Promise((resolve) => {
|
||||
if (!keys.length || !process.stdin.isTTY) {
|
||||
resolve({})
|
||||
return
|
||||
}
|
||||
|
||||
const rl = readline.createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout,
|
||||
})
|
||||
const values = {}
|
||||
let index = 0
|
||||
|
||||
const askNext = () => {
|
||||
if (index >= keys.length) {
|
||||
rl.close()
|
||||
resolve(values)
|
||||
return
|
||||
}
|
||||
|
||||
const key = keys[index]
|
||||
rl.question(`Input value for "${key}" (Enter to keep empty): `, (answer) => {
|
||||
values[key] = answer === '' ? '' : answer
|
||||
index += 1
|
||||
askNext()
|
||||
})
|
||||
}
|
||||
|
||||
askNext()
|
||||
})
|
||||
|
||||
const main = async () => {
|
||||
const keysToPrompt = Object.keys(baseEnv).filter((key) => isEmptyValue(baseEnv[key]))
|
||||
const inputValues = await askKeyValues(keysToPrompt)
|
||||
const localEnv = Object.assign({}, baseEnv, inputValues)
|
||||
|
||||
fs.writeFileSync(path.resolve('./env_loc.gitomit.sfomit.json'), JSON.stringify(localEnv, null, 2), 'utf8')
|
||||
|
||||
console.log('\n::*** Configuring local enviroment:')
|
||||
console.log(localEnv)
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
main().catch((error) => {
|
||||
console.error(error)
|
||||
process.exit(1)
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = baseEnv
|
||||
|
||||
@@ -9,7 +9,7 @@ const { execFileSync } = require('child_process')
|
||||
let ip
|
||||
try {
|
||||
// 使用 curl 同步请求获取 IP
|
||||
ip = execFileSync('curl', ['-s', 'https://api.ipify.org'], { encoding: 'utf8' }).trim()
|
||||
ip = execFileSync('curl', ['-s', 'https://ifconfig.me'], { encoding: 'utf8' }).trim()
|
||||
} catch (e) {
|
||||
// 如果 curl 失败,降级为固定开发环境
|
||||
ip = '0.0.0.0'
|
||||
|
||||
@@ -5,7 +5,7 @@ const path = require('path')
|
||||
console.log('\n::*** Merge remote and local gitignore files to .gitignore')
|
||||
|
||||
// 下载远程 .gitignore_global 内容,不保存中间文件
|
||||
const remoteUrl = 'https://git.tic.cc/npm/sysconfig/raw/branch/main/nixhome/.gitignore_global'
|
||||
const remoteUrl = 'https://git.tic.cc/open/sysconfig/raw/branch/main/nixhome/.gitignore_global'
|
||||
console.log('::--- fetching remote file:', remoteUrl)
|
||||
https
|
||||
.get(remoteUrl, (res) => {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo ::*** Merge remote [.gitignore_global] and local [.gitignore.local.txt] to [.gitignore]
|
||||
curl -sSL https://git.tic.cc/npm/sysconfig/raw/branch/main/nixhome/.gitignore_global > .gitignore
|
||||
curl -sSL https://git.tic.cc/open/sysconfig/raw/branch/main/nixhome/.gitignore_global > .gitignore
|
||||
if [ -f .gitignore.local.txt ]; then cat .gitignore.local.txt >> .gitignore; fi;
|
||||
echo
|
||||
|
||||
# usage in package.json:
|
||||
# "to_merge_gitignore.sh": "curl -sSL https://git.tic.cc/npm/sysconfig/raw/branch/main/gitignore_merge.sh | bash",
|
||||
# "to_merge_gitignore.sh": "curl -sSL https://git.tic.cc/open/sysconfig/raw/branch/main/gitignore_merge.sh | bash",
|
||||
@@ -5,7 +5,7 @@
|
||||
"main": "app_versioning.js",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://git.tic.cc/npm/wo_scripts"
|
||||
"url": "https://git.tic.cc/open/wo_scripts"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
|
||||
84
seafile-ignore.txt
Normal file
84
seafile-ignore.txt
Normal file
@@ -0,0 +1,84 @@
|
||||
# https://help.seafile.com/syncing_client/excluding_files/
|
||||
# 注释。通配符:* 匹配0到若干个字符,包括代表目录的/。? 匹配1个字符,包括/。
|
||||
# seafile-ignore.txt 只能控制在客户端需要忽略哪些文件。你依然可以在 seahub 的 web 界面创建这些被客户端忽略的文件。
|
||||
# 在这种情况下,
|
||||
# 这些文件会被同步到客户端,但是用户在客户端对这些文件的后续修改会被忽略,不会被同步回服务器。
|
||||
# 文件在服务器端的后续更改会被同步到客户端,如果客户端也同时修改了这些文件,系统会生成冲突文件。
|
||||
# seafile-ignore.txt 只能忽略还没有被同步的文件。对于已经被同步的文件,如果后来把它添加到 seafile-ignore.txt 中,系统只会忽略后续更改,已经上传的版本不会受影响。
|
||||
|
||||
### seafile-ignore.global.txt ###
|
||||
|
||||
# 自定义的后缀名,凡有 sfignore 后缀的都不进行同步
|
||||
*.sfignore
|
||||
*.sfignore/
|
||||
*.sfignore.*
|
||||
*.sfignore.*/
|
||||
*.sfomit
|
||||
*.sfomit.*
|
||||
*.sfomit/
|
||||
*.sfomit.*/
|
||||
*.nosf
|
||||
*.nosf.*
|
||||
*.nosf/
|
||||
*.nosf.*/
|
||||
|
||||
## everything 'git pull or fetch' will update `.git/FETCH_HEAD`, even if the content doesn't change. To avoid too many useless updates of this file in Seafile history:
|
||||
FETCH_HEAD
|
||||
*/FETCH_HEAD
|
||||
|
||||
.Trash/
|
||||
|
||||
.DS_Store
|
||||
*/.DS_Store
|
||||
|
||||
.thumbnails
|
||||
*/.thumbnails
|
||||
|
||||
Thumbs.db
|
||||
*/Thumbs.db
|
||||
thumbs.db
|
||||
*/thumbs.db
|
||||
|
||||
_desktop.ini
|
||||
*/_desktop.ini
|
||||
|
||||
._*
|
||||
*/._*
|
||||
|
||||
.$*
|
||||
*/.$*
|
||||
|
||||
~$*
|
||||
*/~$*
|
||||
|
||||
node_modules/
|
||||
*/node_modules/
|
||||
package-lock.json
|
||||
*/package-lock.json
|
||||
|
||||
pages4loader.json5
|
||||
*/pages4loader.json5
|
||||
|
||||
.deploy_git/
|
||||
*/.deploy_git/
|
||||
|
||||
# next.js 项目
|
||||
.next/
|
||||
*/.next/
|
||||
|
||||
# HBuilder 目录
|
||||
unpackage/
|
||||
*/unpackage/
|
||||
|
||||
Icon
|
||||
OneDrive/Icon
|
||||
|
||||
# wrangler project
|
||||
|
||||
.dev.vars*
|
||||
*/.dev.vars*
|
||||
.wrangler/
|
||||
*/.wrangler/
|
||||
|
||||
### seafile-ignore.local.txt ###
|
||||
|
||||
Reference in New Issue
Block a user