123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304 |
- #!/bin/sh
- ## Copyright (c) 2016 Minoca Corp. All Rights Reserved.
- ##
- ## Script Name:
- ##
- ## cposs.sh
- ##
- ## Abstract:
- ##
- ## This script copies the swiss source to the open source repository.
- ##
- ## Author:
- ##
- ## Evan Green 18-Jan-2016
- ##
- ## Environment:
- ##
- ## Minoca Build
- ##
- set -e
- if test -z "$SRCROOT"; then
- echo "Error: SRCROOT must be set."
- exit 1
- fi
- if test -z "$DEST"; then
- DEST="$SRCROOT/swiss"
- if ! [ -d "$DEST" ]; then
- echo "Error: DEST must be set or "$DEST" must exist."
- exit 1
- fi
- fi
- APPS="$SRCROOT/os/apps"
- LIB="$SRCROOT/os/lib"
- SED_ARG='/^Copyright/,/^Module Name:/{
- # Print the last line normally.
- /^Module Name:/b
- # Preserve spacing.
- /^$/b
- # Normalize the Minoca copyright. Add the OSS license after the Minoca
- # copyright.
- s/Copyright[^0-9]*\([-, 0-9]*\).*/Copyright (c) \1Minoca Corp./
- t addlicense
- # Preserve other non-Minoca copyrights.
- /^[Cc]opyright.*/ b
- # Delete all other junk.
- d
- :addlicense {
- p # Print the Minoca copyright line.
- i \
- \
- This project is dual licensed. You are receiving it under the terms of the\
- GNU General Public License version 3 (GPLv3). Alternative licensing terms are\
- available. Contact info@minocacorp.com for details. See the LICENSE file at the\
- root of this project for complete licensing information.
- d
- }
- }'
- ROOT_FILES=".gitattributes
- .gitconfig"
- for file in $ROOT_FILES; do
- sed "$SED_ARG" "$SRCROOT/os/$file" > "$DEST/$file"
- done
- TERMLIB="$DEST/termlib"
- mkdir -p "$TERMLIB"
- TERMLIB_FILES="term.c"
- for file in $TERMLIB_FILES; do
- sed "$SED_ARG" "$LIB/termlib/$file" > "$TERMLIB/$file"
- done
- RTL_BASE="$DEST/rtl/base"
- mkdir -p "$RTL_BASE/armv7" "$RTL_BASE/x86" "$RTL_BASE/x64"
- RTL_BASE_FILES="crc32.c
- heap.c
- math.c
- print.c
- rbtree.c
- scan.c
- softfp.c
- softfp.h
- string.c
- time.c
- time.h
- timezone.c
- wchar.c
- wprint.c
- wscan.c
- wstring.c
- wtime.c
- armv7/intrinsa.S
- armv7/intrinsc.c
- armv7/rtlarch.S
- armv7/rtlmem.S
- fp2int.c
- x86/intrinsc.c
- x86/rtlarch.S
- x86/rtlmem.S
- x64/rtlarch.S
- x64/rtlmem.S"
- for file in $RTL_BASE_FILES; do
- sed "$SED_ARG" "$LIB/rtl/base/$file" > "$RTL_BASE/$file"
- done
- sed "$SED_ARG" "$SRCROOT/os/lib/rtl/rtlp.h" > "$DEST/rtl/rtlp.h"
- RTLC="$DEST/rtl/rtlc"
- mkdir -p "$RTLC/"
- RTLC_FILES="stubs.c"
- for file in $RTLC_FILES; do
- sed "$SED_ARG" "$LIB/rtl/rtlc/$file" > "$RTLC/$file"
- done
- WINCSUP="$DEST/libc/wincsup"
- mkdir -p "$WINCSUP/include"
- WINCSUP_FILES="../regexcmp.c
- ../regexexe.c
- ../regexp.h
- strftime.c
- include/regex.h"
- for file in $WINCSUP_FILES; do
- sed "$SED_ARG" "$APPS/libc/dynamic/wincsup/$file" > "$WINCSUP/$file"
- done
- SWISS="$DEST/src"
- mkdir -p "$SWISS/ls"
- mkdir -p "$SWISS/sed"
- mkdir -p "$SWISS/sh"
- mkdir -p "$SWISS/swlib"
- mkdir -p "$SWISS/login"
- mkdir -p "$SWISS/uos"
- mkdir -p "$SWISS/win32"
- SWISS_FILES="basename.c
- cat.c
- cecho.c
- chmod.c
- chroot.c
- cmp.c
- comm.c
- cp.c
- cut.c
- date.c
- dd.c
- diff.c
- dirname.c
- easy.c
- echo.c
- env.c
- expr.c
- find.c
- grep.c
- head.c
- id.c
- install.c
- kill.c
- ln.c
- ls/compare.c
- ls/ls.c
- ls/ls.h
- mkdir.c
- mktemp.c
- mv.c
- nl.c
- nproc.c
- od.c
- printf.c
- ps.c
- pwd.c
- reboot.c
- rm.c
- rmdir.c
- sed/sed.c
- sed/sed.h
- sed/sedfunc.c
- sed/sedparse.c
- sed/sedutil.c
- seq.c
- sh/alias.c
- sh/arith.c
- sh/builtin.c
- sh/exec.c
- sh/expand.c
- sh/lex.c
- sh/linein.c
- sh/parser.c
- sh/path.c
- sh/sh.c
- sh/sh.h
- sh/shos.h
- sh/shparse.h
- sh/signals.c
- sh/util.c
- sh/var.c
- sort.c
- split.c
- stty.c
- sum.c
- swiss.c
- swiss.h
- swisscmd.h
- swlib/copy.c
- swlib/delete.c
- swlib/pattern.c
- swlib/pwdcmd.c
- swlib/string.c
- swlib/userio.c
- swlib.h
- swlibos.h
- tail.c
- tee.c
- test.c
- time.c
- touch.c
- tr.c
- uname.c
- uniq.c
- wc.c
- xargs.c
- chown.c
- init.c
- login/chpasswd.c
- login/getty.c
- login/groupadd.c
- login/groupdel.c
- login/login.c
- login/lutil.c
- login/lutil.h
- login/passwd.c
- login/su.c
- login/sulogin.c
- login/useradd.c
- login/userdel.c
- login/vlock.c
- mkfifo.c
- readlink.c
- sh/shuos.c
- ssdaemon.c
- swlib/chownutl.c
- swlib/uos.c
- telnet.c
- telnetd.c
- swlib/minocaos.c
- swlib/linux.c
- win32/swiss.exe.manifest
- win32/swiss.rc
- sh/shntos.c
- swlib/ntos.c"
- for file in $SWISS_FILES; do
- sed "$SED_ARG" "$APPS/swiss/$file" > "$SWISS/$file"
- done
- SWISS_EDITED_FILES="win32/w32cmds.c
- cmds.c
- uos/uoscmds.c
- win32/w32cmds.c"
- for file in $SWISS_EDITED_FILES; do
- sed -e '/.*DwMain.*/d' -e "$SED_ARG" "$APPS/swiss/$file" > "$SWISS/$file"
- done
- INCLUDE="$DEST/include"
- mkdir -p "$INCLUDE/minoca/lib"
- mkdir -p "$INCLUDE/minoca/kernel"
- INCLUDE_FILES="minoca/lib/types.h
- minoca/lib/status.h
- minoca/lib/rtl.h
- minoca/lib/termlib.h
- minoca/lib/tzfmt.h
- minoca/kernel/x86.inc
- minoca/kernel/arm.inc
- minoca/kernel/x64.inc"
- for file in $INCLUDE_FILES; do
- sed "$SED_ARG" "$SRCROOT/os/include/$file" > "$INCLUDE/$file"
- done
- VERSION_H="$SRCROOT/$ARCH$DEBUG/obj/os/apps/swiss/version.h"
- if ! [ -r "$VERSION_H" ]; then
- echo "Error: $VERSION_H is missing. You must build swiss first!"
- exit 1
- fi
- sed -e "s/#define VERSION_LICENSE .*/#define VERSION_LICENSE \"\\\\nThis \
- software is licensed under the the terms of the GNU General Public \
- License v3.\"/" \
- -e "s/#define VERSION_BUILD_USER .*/#define VERSION_BUILD_USER \"Minoca\"/"\
- -e "s/\\(#define VERSION_BUILD_STRING \"\\)[^-]*-\\(.*\\)/\1\2/" \
- "$VERSION_H" > "$SWISS/version.h"
- echo "Done copying swiss files."
|