filesite
5 months ago
2 changed files with 275 additions and 251 deletions
@ -0,0 +1,266 @@ |
|||||||
|
#!/bin/sh |
||||||
|
|
||||||
|
# 公用方法 |
||||||
|
|
||||||
|
# 显示欢迎信息 |
||||||
|
welcome () { |
||||||
|
echo "==欢迎使用machete_installer==" |
||||||
|
echo "本脚本为开源项目,网址:https://git.filesite.io/filesite/machete_installer" |
||||||
|
echo "它将指引并安装docker desktop和machete的docker镜像" |
||||||
|
echo "并完成machete的基本配置,在你的电脑上创建两个网站,一个管理图片,一个管理视频" |
||||||
|
echo "" |
||||||
|
} |
||||||
|
|
||||||
|
# 显示结束语 |
||||||
|
theend () { |
||||||
|
echo "" |
||||||
|
echo "==感谢使用machete_installer==" |
||||||
|
echo "本脚本为开源项目,网址:https://git.filesite.io/filesite/machete_installer" |
||||||
|
echo "个性化配置请参考官方文档:" |
||||||
|
echo "https://filesite.io/view/?id=2907455e19bee577f8ed4c9fac83ae95" |
||||||
|
echo "" |
||||||
|
} |
||||||
|
|
||||||
|
# 获取用户桌面绝对路径 |
||||||
|
getHomePath () { |
||||||
|
path=`cd ~/ && pwd` |
||||||
|
echo $path |
||||||
|
} |
||||||
|
|
||||||
|
# 获取本地局域网ip地址 |
||||||
|
getLocalIp () { |
||||||
|
ipstr=`ifconfig -a | grep -v grep | grep '192.168'` |
||||||
|
echo "${ipstr}" | cut -d ' ' -f 2 |
||||||
|
} |
||||||
|
|
||||||
|
# 获取mac mini的cpu芯片型号信息 |
||||||
|
getCpuInfo () { |
||||||
|
cpu_info=`sysctl -n machdep.cpu.brand_string` |
||||||
|
echo "你的电脑芯片型号:${cpu_info}" |
||||||
|
} |
||||||
|
|
||||||
|
# 获取电脑cpu类型 |
||||||
|
# 返回值:1 = intel芯片,2 = 苹果芯片 |
||||||
|
getCpuType () { |
||||||
|
cpu_info=`sysctl -n machdep.cpu.brand_string` |
||||||
|
|
||||||
|
if [[ $cpu_info == *"Intel"* ]]; then |
||||||
|
return 1 #intel芯片 |
||||||
|
fi |
||||||
|
|
||||||
|
return 2 #默认为苹果芯片 |
||||||
|
} |
||||||
|
|
||||||
|
# 检测是否已经安装了docker |
||||||
|
# 返回值:0 - 未安装,1 - 已安装 |
||||||
|
detectDockerInstalled () { |
||||||
|
res=`command -v docker | wc -l` |
||||||
|
if [ $res -gt 0 ]; then |
||||||
|
return 1 |
||||||
|
fi |
||||||
|
|
||||||
|
return 0 |
||||||
|
} |
||||||
|
|
||||||
|
# 检测docker desktop是否启动 |
||||||
|
# 返回值:0 - 未启动,1 - 已启动 |
||||||
|
detectDockerStarted () { |
||||||
|
res=`docker images | grep -v grep | grep "IMAGE ID" | wc -l` |
||||||
|
if [ $res -gt 0 ]; then |
||||||
|
return 1 |
||||||
|
fi |
||||||
|
|
||||||
|
return 0 |
||||||
|
} |
||||||
|
|
||||||
|
# 检测docker image是否下载 |
||||||
|
# 返回值:0 - 未下载,1 - 已下载 |
||||||
|
detectDockerImageExists () { |
||||||
|
imgName=$1 |
||||||
|
if [ -z "${imgName}" ]; then |
||||||
|
imgName="filesite/machete" |
||||||
|
fi |
||||||
|
|
||||||
|
res=`docker images | grep -v grep | grep "${imgName}" | wc -l` |
||||||
|
if [ $res -gt 0 ]; then |
||||||
|
return 1 |
||||||
|
fi |
||||||
|
|
||||||
|
return 0 |
||||||
|
} |
||||||
|
|
||||||
|
# 检测docker container是否启动 |
||||||
|
# 返回值:0 - 未启动,1 - 已启动 |
||||||
|
detectDockerContainerExists () { |
||||||
|
containerName=$1 |
||||||
|
if [ -z "${containerName}" ]; then |
||||||
|
containerName="machete_album" |
||||||
|
fi |
||||||
|
|
||||||
|
res=`docker ps -a | grep -v grep | grep "${containerName}" | wc -l` |
||||||
|
if [ $res -gt 0 ]; then |
||||||
|
return 1 |
||||||
|
fi |
||||||
|
|
||||||
|
return 0 |
||||||
|
} |
||||||
|
|
||||||
|
# 启动相册容器,端口:8181 |
||||||
|
# @album_name 容器名 |
||||||
|
# @album_path 相册保存路径 |
||||||
|
dockerStartAlbumContainer () { |
||||||
|
album_name=$1 |
||||||
|
album_path=$2 |
||||||
|
if [ -z "${album_name}" ]; then |
||||||
|
album_name="machete_album" |
||||||
|
fi |
||||||
|
if [ -z "${album_path}" ]; then |
||||||
|
homePath=`getHomePath` |
||||||
|
album_path="${homePath}/Desktop/Album_by_filesite" |
||||||
|
fi |
||||||
|
|
||||||
|
docker run --name "${album_name}" \ |
||||||
|
-p 8181:80 \ |
||||||
|
-v "${album_path}:/var/www/machete/www/girls/" \ |
||||||
|
-itd filesite/machete \ |
||||||
|
beauty |
||||||
|
} |
||||||
|
|
||||||
|
# 启动视频容器,端口:8182 |
||||||
|
# @blog_name 容器名 |
||||||
|
# @blog_path 视频保存路径 |
||||||
|
dockerStartVideoContainer () { |
||||||
|
blog_name=$1 |
||||||
|
blog_path=$2 |
||||||
|
if [ -z "${blog_name}" ]; then |
||||||
|
blog_name="machete_videos" |
||||||
|
fi |
||||||
|
if [ -z "${blog_path}" ]; then |
||||||
|
homePath=`getHomePath` |
||||||
|
blog_path="${homePath}/Desktop/Videos_by_filesite" |
||||||
|
fi |
||||||
|
|
||||||
|
docker run --name "${blog_name}" \ |
||||||
|
-p 8182:80 \ |
||||||
|
-v "${blog_path}:/var/www/machete/www/videos/" \ |
||||||
|
-itd filesite/machete \ |
||||||
|
videoblog |
||||||
|
} |
||||||
|
|
||||||
|
# 检测域名是否能连接 |
||||||
|
# 返回值:0 - 不能连接,1 - 可连接 |
||||||
|
detectDomainCanConnect () { |
||||||
|
domain=$1 |
||||||
|
if [ -z "${domain}" ]; then |
||||||
|
echo "Usage: detectDomainCanConnect domain" |
||||||
|
echo "" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
|
||||||
|
ping_res=`ping -c 3 "${domain}"` |
||||||
|
if [[ $ping_res == *"100.0% packet loss"* ]]; then |
||||||
|
return 0 |
||||||
|
fi |
||||||
|
|
||||||
|
return 1 |
||||||
|
} |
||||||
|
|
||||||
|
# 获取docker desktop下载地址 |
||||||
|
# 参数:connect_res,可选值:[0, 1] |
||||||
|
getDockerDesktopDownloadUrl () { |
||||||
|
getCpuType |
||||||
|
cup_type=$? |
||||||
|
|
||||||
|
dmgLink_docker="https://desktop.docker.com/mac/main/arm64/Docker.dmg" |
||||||
|
dmgLink="https://static.jialuoma.cn/docker_desktop/docker_arm64.dmg" |
||||||
|
|
||||||
|
if [ $cup_type -eq 1 ]; then |
||||||
|
dmgLink_docker="https://desktop.docker.com/mac/main/amd64/Docker.dmg" |
||||||
|
dmgLink="https://static.jialuoma.cn/docker_desktop/docker_amd64.dmg" |
||||||
|
fi |
||||||
|
|
||||||
|
connect_res=$1 |
||||||
|
if [ $connect_res -eq 0 ]; then |
||||||
|
echo "${dmgLink}" |
||||||
|
else |
||||||
|
#原网址 |
||||||
|
echo "${dmgLink_docker}" |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
# 下载docker desktop |
||||||
|
downloadDockerDesktop () { |
||||||
|
link=$1 |
||||||
|
if [ -z "${link}" ]; then |
||||||
|
echo "Usage: downloadDockerDesktop url" |
||||||
|
echo "" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
|
||||||
|
echo "docker desktop下载链接:${link}" |
||||||
|
echo "即将在浏览器中打开docker desktop的下载链接并开始下载" |
||||||
|
echo "请在docker desktop下载完成后,双击打开安装" |
||||||
|
open "${link}" |
||||||
|
} |
||||||
|
|
||||||
|
# 创建桌面快捷方式 |
||||||
|
createShortcuts () { |
||||||
|
ip=`getLocalIp` |
||||||
|
|
||||||
|
type=$1 |
||||||
|
|
||||||
|
if [ "${type}" == "album" ]; then |
||||||
|
echo "[InternetShortcut]" > ~/Desktop/相册.url |
||||||
|
echo "URL=http://${ip}:8181" >> ~/Desktop/相册.url |
||||||
|
else |
||||||
|
echo "[InternetShortcut]" > ~/Desktop/视频.url |
||||||
|
echo "URL=http://${ip}:8182" >> ~/Desktop/视频.url |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
# 升级docker容器里的代码到最新版 |
||||||
|
upgradeMacheteInContainers () { |
||||||
|
name=$1 |
||||||
|
|
||||||
|
if [ "${name}}" == "album" ]; then |
||||||
|
docker exec -it machete_album /var/www/machete/bin/upgrade.sh |
||||||
|
docker container cp template/custom_config_beauty.json machete_album:/var/www/machete/runtime/custom_config.json |
||||||
|
else |
||||||
|
docker exec -it machete_vlog /var/www/machete/bin/upgrade.sh |
||||||
|
docker container cp template/custom_config_videoblog.json machete_vlog:/var/www/machete/runtime/custom_config.json |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
# 下载演示照片 |
||||||
|
downloadSamplesPhotos () { |
||||||
|
savePath=$1 |
||||||
|
if [ -z "${savePath}" ]; then |
||||||
|
savePath="~/Desktop/Album_by_filesite/" |
||||||
|
fi |
||||||
|
|
||||||
|
echo "下载演示照片..." |
||||||
|
url="https://static.jialuoma.cn/samples/sample_photos.tar.gz" |
||||||
|
curl -o sample_photos.tar.gz "${url}" |
||||||
|
tar -zxvf sample_photos.tar.gz |
||||||
|
cp -r sample_photos/* $savePath |
||||||
|
|
||||||
|
echo "下载演示音乐mp3..." |
||||||
|
url="https://static.jialuoma.cn/samples/melody.mp3" |
||||||
|
curl -o melody.mp3 "${url}" |
||||||
|
cp melody.mp3 $savePath |
||||||
|
} |
||||||
|
|
||||||
|
# 下载演示视频 |
||||||
|
downloadSamplesVideos () { |
||||||
|
savePath=$1 |
||||||
|
if [ -z "${savePath}" ]; then |
||||||
|
savePath="~/Desktop/Videos_by_filesite/" |
||||||
|
fi |
||||||
|
|
||||||
|
echo "下载演示视频..." |
||||||
|
url="https://static.jialuoma.cn/samples/sample_videos.tar.gz" |
||||||
|
curl -o sample_videos.tar.gz "${url}" |
||||||
|
tar -zxvf sample_videos.tar.gz |
||||||
|
cp -r sample_videos/* $savePath |
||||||
|
} |
||||||
|
|
Loading…
Reference in new issue